<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>11_dynamic_prototype</title>
	<meta name="author" content="Stark" />
	<!-- Date: 2018-10-19 -->
	<script type="text/javascript">
		/**
		 * 原型是js中非常特殊的一个对象，当一个函数创建之后，会随之就产生一个原型对象
		 * 但通过这个函数的构造函数创建了一个具体的对象之后，在这个具体的对象中
		 * 就会有一个属性指向原型
		 */
		function Person() {
			
		}
		Person.prototype = {
			constructor:Person,
			name:"Leno",
			age:30,
			friends:["Ada","Chris"],
			say:function() {
				alert(this.name+"["+this.friends+"]");
			}
		}
		
		var p1 = new Person();
		p1.name = "John";
		p1.say();	// Jonh[Ada,Chris]
		p1.friends.push("Mike");	// 为p1增加了一个朋友
		var p2 = new Person();
		// 此时原型中就多了一个Mike,这就是原型所带来的问题
		p2.say();	// Leno[Ada,Chris]； Leno[Ada,Chris,Mike]
	</script>
</head>
<body>

</body>
</html>

